package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"hera-admin/common"
	"hera-admin/middlewares"
	"hera-admin/router"
	"hera-admin/tools"
	"os"
)

func main() {
	common.VP = tools.Viper()      // 初始化Viper，负责传入配置文件路径，并监听配置文件变化
	common.LOG = tools.Zap()       // 初始化zap日志库
	common.DB = common.GormMysql() // gorm连接数据库
	common.MysqlTables(common.DB)  // 初始化表
	// 程序结束前关闭数据库链接
	db, _ := common.DB.DB()
	defer db.Close()

	// 解析etc/server.yml
	parseConf()

	// 启动http服务
	InitServer()
}
func parseConf() {
	if err := common.Parse(); err != nil {
		fmt.Println("cannot parse configuration file:", err)
		os.Exit(1)
	}
}

func InitServer() {
	r := gin.Default()
	r.Use(middlewares.Cors())
	PublicGroup := r.Group("/api/v1/")
	router.InitContainerRouter(PublicGroup)

	r.Run(":5000")
}
